STM32 电机控制 SDK MCFW-6.4.1
用于构建驱动 STM32 的 PMSM 电机应用的软件开发套件
空间矢量PWM实现

上文:先验确定磁通和扭矩电流PI增益 ↤|目录 |↦ 下一页:过调

遗留实现

下图第一张图显示了定子电压分量Va和Vb,第二张图展示了六个空间向量扇区对应的PWM。

Vα和Vβ定子电压分量
SVPWM 相位电压波形

对于:

\(U_\alpha = \sqrt{3}\cdot T \cdot V_\alpha\)

\(U_\beta = - T \cdot V_\beta\)

以及

\(X = U_\beta\)

\(Y = \frac{U_\alpha + U_\beta}{2}\)

\(Z = \frac{U_\beta - U_\alpha}{2}\)

文献表明空间向量扇区可通过下表所示条件识别:

Y < 0Y ≥ 0
Z < 0Z≥0Z < 0Z≥0
X ≤ 0X > 0X ≤ 0X > 0
扇区VI

施加在相A、B和C上的PWM正脉冲宽度持续时间分别通过以下关系计算:

  • 第一区和第四区

    \(t_A = \frac{T+X-Z}{2}\) \( t_B = t_A + Z\) \( t_C = t_B - X\)

  • 第二区和第五区

    \(t_A = \frac{T+Y-Z}{2}\) \( t_B = t_A + Z\) \( t_C = t_A - Y\)

  • 第三区和第六区

    \(t_A = \frac{T-X+Y}{2}\) \( t_B = t_C + X\) \( t_C = t_A - Y\)

...其中 \(T\) 是 PWM 周期。

考虑到PWM模式是中心对齐的,且相电压必须在占空比的50%处居中,因此加载到PWM输出比较寄存器的值分别为:

  • 第一区和第四区

    \(T_{CCR_A} = \frac T4+\frac{T/2+X-Z}2\) \(T_{CCR_B} = T_{CCR_A} + Z\) \(T_{CCR_C} = T_{CCR_B} + X\)

  • 第二区和第五区

    \(T_{CCR_A} = \frac T4+\frac{T/2+Y-Z}2\) \(T_{CCR_B} = T_{CCR_A} + Z\) \(T_{CCR_C} = T_{CCR_B} - Y\)

  • 第三区和第六区

    \(T_{CCR_A} = \frac T4+\frac{T/2+Y-X}2\) \(T_{CCR_B} = T_{CCR_C} + X\) \(T_{CCR_C} = T_{CCR_A} - Y\)

HSO的实现

三相到正交

从三相到正交两相的转变称为“克拉克”变换。克拉克变换有两种“味道”:幂不变版本和振幅不变版本。本文档中使用了方程(1.1)和(1.2)所示的振幅不变。向量 \(\vec{u}_{RST}\) 是输入向量,\(\vec{u}_{αβ}\) 是输出向量。需要注意的是,当将振幅从三相守恒到两相时,从三相到正交两相的转变称为“克拉克”变换。克拉克变换有两种“味道”:幂不变版本和振幅不变版本。本文档中使用了方程(1.1)和(1.2)所示的振幅不变。向量的功率会减少一个因子\(\frac{2}{3}\),这将在扭矩计算中体现出来。

\(\left[\begin{matrix}u_{\alpha}\\u_{\beta}\\u_{0}\end{Matrix}\right] = \frac 2{3} \left[\begin{matrix}1 & -\frac1{2} & -\frac1{2} \\0 & \frac{\sqrt3}{2} & -\frac{\sqrt3}{2} \\ \frac1{2} & \frac1{2} \frac1{2}\end{矩阵}\right] 。\left[\begin{matrix}u_{R}\\u_{S}\u_{T}\end{矩阵}\右侧]\) (1.1)

另一种写振幅不变克拉克变换的方法是:

\(\left[\begin{matrix}u_{\alpha}\\u_{\beta}\\u_{0}\end{matrix}\right] = \left[\begin{matrix} \frac2{3} & -\frac1{3} & -\frac1{3} \\0 & \frac1{\sqrt3} & -\frac1{\sqrt3}\ \\ \frac1{3} \frac1{3} \frac1{3}\end{matrix}\right] 。\left[\begin{matrix}u_{R}\\u_{S}\\u_{T}\end{矩阵}\right])(1.2)

由于电机电流 \(i_{R},i_{S},i_{T}\) 仅依赖于相间电压差,三相相对于参考值的平均值 \(u_{0}\) 通常隐含地被省略于克拉克变换中,因为电流不存在影响。因此得到一个更简单的变换,可用于电压和电流:

\(\left[\begin{matrix}u_{\alpha}\\u_{\beta}\end{matrix}\right] = \left[\begin{matrix} \frac2{3} & -\frac1{3} & -\frac1{3} \\0 & \frac1{\SQRT3} & -\frac1{\SQRT3}\ \END{MATRIX}\RIGHT] 。\left[\begin{matrix}u_{R}\\u_{S}\\u_{T}\end{matrix}\right])(1.3)

\(\left[\begin{matrix}i_{\alpha}\\i_{\beta}\end{矩阵}\right] = \left[\begin{matrix} \frac2{3} & -\frac1{3} & -\frac1{3} \\0 & \frac1{\sqrt3} & -\frac1{\sqrt3}\ \end{矩阵}\right] 。\左[\begin{矩阵}i_{R}\\i_{S}\\i_{T}\end{矩阵}\right])(1.4)

进行这种3→2的变换会破坏恢复到原始相电压的可能性。当矩阵保持3×3时,反演是无损的。然而,在运动控制中,电流控制仅作用于α,β分量,然后将其转换为d,q同步帧,计算出新的\(\vec{u}_{dq}\)。之后计算出新的电压 \(\vec{u}_{αβ}\),需转换为三个PWM模块的占空比命令。这时需要倒影。

\(\left[\begin{matrix}u_{R}\\u_{S}\\u_{T}\end{matrix}\right] = \left[\begin{matrix}1 & 0 & 1 \\ -\frac1{2} & \frac{\sqrt3}{2} & 1 \\ -\frac1{2} & -\frac{\sqrt3}{2} & 1\end{matrix}\right] 左[\begin{matrix}u_{\alpha}\\u_{\beta}\\u_{com}\end{matrix}\right]\) (1.5)

方程(1.5)中的矩阵是(1.2)中矩阵的逆矩阵。通常矩阵的第三列被省略,剩余部分称为“逆克拉克”变换。包含第三列并利用其潜力,可以避免性能限制且成本为零。下一章说明我们应该如何选择 \(u_{com}\)?

占空比与调制指数

PWM设备基本上工作量在0%到100%之间。在ST运动控制中,我们选择使用调制指数。调制指数范围在-1到+1之间。定义如下:

\(m = 2d − 1\)(1.6)

\(m_{R} = \frac{2u_{R}}{u_{dc}}, m_{S} = \frac{2u_{S}}{u_{dc}}, m_{T} = \frac{2u_{T}}{u_{dc}}\) (1.7)

认识到相同的有效电压矢量 \(u_{αβ}\) 可以由无限多个不同的共模电压 \(u_{com}\) 产生,从而得到三相调制器设计所需的最重要的方程:

\(\left[\begin{matrix}m_{R}\\m_{S}\\m_{T}\end{matrix}\right] = \left[\begin{matrix}1 & 0 & 1 \\ -\frac1{2} & \frac{\sqrt3}{2} & 1 \\ -\frac1{2} & -\frac{\sqrt3}{2} & 1\end{matrix}\right] 左[\begin{matrix}m_{\alpha}\\m_{\beta}\\m_{com}\end{matrix}\right]\) (1.8)

如果先计算 \(m_{com} = 1\) 选项(“逆克拉克”变换),然后添加 \(m_{com}\) 贡献,则在代码中实现 (8.0) 会更为简单:

\(\left[\begin{matrix}m_{R}\\m_{S}\\m_{T}\end{matrix}\right] = \left[\begin{matrix}1 & 0 \\ -\frac1{2} & \frac{\sqrt3}{2} \\ -\frac1{2} & -\frac{\sqrt3}{2} \end{matrix}\right] 。\left[\begin{matrix}m_{\alpha}\\m_{\beta}\end{matrix}\right]\) (1.9)

通过将所需的共模分量加入逆克拉克变换(1.9)中的分量,即可得到最终调制指标:

\(m_R = m_{R0} + m_{com}\) (1.10)

\(m_S = m_{S0} + m_{com}\) (1.11)

\(m_T = m_{T0} + m_{com}\) (1.12)

共模策略

中心调制

中心调制通常称为空间矢量调制(SVM)。其核心是,共模旨在保持与顶部和底部电源的距离相等。简而言之:

\(m_{com} = \frac { max(m_{R_0},m_{S_0}, m_{T_0}) + min(m_{R_0},m_{S_0}, m_{T_0}) } {2}\) (1.13)

所得波形如图1.1所示。

ShiftedCenter 调制

ShiftedCenter 调制旨在优化使用低侧并联和带有有限斜率和带宽的差分放大器系统的电流测量质量。这种新调制方法调整共模信号,使脉冲宽度尽可能低,从而使低侧并联脉冲尽可能宽,从而扩大电流重建的空间。

当前重建意味着从剩余的两个“良好”相中重建出一个“坏”相的值。当脉冲变短时,测量到的低侧并联信号变得不可靠。从并联信号的前缘到采样瞬时之间的时间应足够,使反向恢复等效应引起的振铃消失,并让放大器能够正常稳定。当时间过短时,需要忽略短脉冲结果。幸运的是,剩余两相脉冲较长,因此可用于重建,但可重建空间受调制方法限制。图1.2顶部图表中,虚黑线表示了其他职责优于最差的职责。图1.2中的背景色表示最小脉冲的宽度:绿色等于宽,黄色对应窄。ShiftedCenter的调制类似于低振幅的Centered调制,只是稍微偏移一下,然后开始

图1.1:中心调制原理。细线是mcom为零的波。在α,β帧中,使用正弦波调制时,振幅可为1.1547,而非1。

将底部的调制空间交换为顶部更多的调制空间,如图(1.2)底部所示。为了正确重建电流,所需的并联采样脉冲宽度是中心调制的两倍,这已经有了很大的提升!

剩余调制类型

以下调制类型可能对其他目标感兴趣,主要是将三个相位中的一个“粘附”到最接近的极限。细紫色线是根据PWMC_SetPhaseDuty算法Generate的公共信号

当前重建

图1.2:顶部:中心空间矢量调制()。底部:中心调制移位可实现电流重建的双倍范围。该区间仅有三相中有一相占空比超过某一限制。该电平被降低,使得在电流重建过程中可以使用更宽的低侧脉冲。占空比由颜色表示:从绿色(m = −1,d = 0)到黄色(m = 1,d = 1),代表绿色为长、黄色为短的低侧并联脉冲。
图1.3:上:最小低调制,中:最大高调制,下:上下调制。每种方法都让一相粘在其中一根直流线上,因此三桥中只有两条在同一时刻切换。线条颜色与图1.2相同()。

结论

  • 使用基于低侧并联电流测量(三相)时,需要最小脉冲宽度,使模拟并联放大器稳定,AD转换器才能产生有效答案。在对称运行期间,只有三相中有一相出现狭窄的并联脉冲,因此可以用另外两个“好”相重建该“坏相”。通过使用ShiftedCenter调制,可以将共模信号的额外移位(见图3.1)加倍重建空间。
  • 其他开关目标可以通过使用其他共模信号实现。这三个极端见图1.3。这些装置将输出电压“粘附”到负直流轨(minLow)或正轨(maxHigh),或者防止开关发生开关(减少上下调制)。
  • 本章存在矛盾:代码中共模信号从输入信号中减去,文本和图示中共模被视为加模。因此,调试时请注意,内部信号Dcom是\(m_{com}\的倒转版本)。

前文:速度PI增益的先验确定 ↤|目录 |↦ 下一页:过调